What is @temporalio/common?
@temporalio/common is a package that provides common utilities and types for use with the Temporal workflow orchestration engine. It is designed to facilitate the development of workflows and activities by providing shared types and helper functions.
What are @temporalio/common's main functionalities?
Workflow Execution
This feature allows you to start a workflow execution using the Temporal client. The code sample demonstrates how to connect to the Temporal service and start a workflow.
const { WorkflowClient } = require('@temporalio/client');
const { Connection } = require('@temporalio/common');
async function run() {
const connection = await Connection.connect();
const client = new WorkflowClient(connection.service);
const handle = await client.start('myWorkflow', { taskQueue: 'my-task-queue' });
console.log(`Started workflow ${handle.workflowId}`);
}
run().catch(err => console.error(err));
Activity Definition
This feature allows you to define activities that can be executed within workflows. The code sample shows how to define a simple activity that takes an input and returns a greeting message.
const { defineActivity } = require('@temporalio/common');
const myActivity = defineActivity(async (input) => {
return `Hello, ${input.name}!`;
});
module.exports = { myActivity };
Workflow Definition
This feature allows you to define workflows that orchestrate the execution of activities. The code sample demonstrates how to define a workflow that calls an activity and returns its result.
const { defineWorkflow } = require('@temporalio/common');
const { myActivity } = require('./activities');
const myWorkflow = defineWorkflow(async (input) => {
const result = await myActivity({ name: input.name });
return result;
});
module.exports = { myWorkflow };
Other packages similar to @temporalio/common
aws-sdk
The AWS SDK for JavaScript provides a set of tools for interacting with AWS services. It includes functionality for managing workflows using AWS Step Functions, which is similar to Temporal's workflow orchestration capabilities. However, AWS Step Functions are more tightly integrated with the AWS ecosystem.
bull
Bull is a Node.js library for creating robust job queues. It provides features for job scheduling and processing, which can be used to implement workflow-like behavior. Unlike Temporal, Bull does not provide built-in support for long-running workflows and state management.
agenda
Agenda is a lightweight job scheduling library for Node.js. It allows you to define and manage jobs that can be scheduled to run at specific times or intervals. While it provides some workflow-like capabilities, it lacks the advanced orchestration and state management features of Temporal.